<!-- 
    对象原型(__proto__)和构造函数(prototype)原型对象里面都有一个constructor属性，constructor我们
    称之为构造函数，因为它指回构造函数本身

    constructor主要用于记录该对象引用于哪个构造函数，它可以让原型对象重新指向原来的构造函数
    注意：主要是对象不管是对象实例还是原型对象，都会有对象原型
 -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function Star(uname, age) {
            this.uname = uname;
            this.age = age;

        }
        // Star.prototype.sing = function () {
        //     console.log('我会唱歌');
        // }

        // Star.prototype.movie = function () {
        //     console.log('我会演电影');
        // }

        Star.prototype = {        //这里的对象把prototype这个原型对象覆盖掉了，所有没有了
            //办法指回原来的构造函数
            constructor: Star,
            sing: function () {
                console.log('我唱歌');
            },
            move: function () {
                console.log('我演电影');
            }

        }


        var ldh = new Star('刘德华', 18);
        var zxy = new Star('张学友', 19);

        console.log(Star.prototype);
        //1.我们Star原型对象里面的__proto__原型指向的是Object.prototype
        console.log(Star.prototype.__proto__ === Object.prototype);

        console.log(Object.prototype.__proto__); //Object原型对象里面的原型为空





    </script>
</body>

</html>